Build explicit Ubuntu versions, add Ubuntu 22.04 support - #229
Build explicit Ubuntu versions, add Ubuntu 22.04 support#229alan-george-lk wants to merge 4 commits into
Conversation
| # Deprecated compatibility aliases for existing Linux release consumers. | ||
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \ | ||
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz" | ||
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \ | ||
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz" |
There was a problem hiding this comment.
🔴 Compatibility Linux download unpacks into a differently named folder than before
The compatibility Linux download is produced by copying the Ubuntu 24.04 archive file (cp at .github/workflows/make-release.yml:436-439) instead of repacking it, so anyone who unzips it now gets a folder with an unexpected name and their scripts stop finding the files.
Impact: Existing automation that downloads the Linux release and expects the old folder name breaks silently on the next release, defeating the purpose of the compatibility alias.
Archive top-level directory name mismatch in alias creation
Previously the loop created livekit-sdk-linux-x64-${VERSION}.tar.gz by running tar -czf ... livekit-sdk-linux-x64-${VERSION}, so the archive's single top-level entry was livekit-sdk-linux-x64-${VERSION}/.
Now the alias is a byte-for-byte copy of livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz, whose top-level entry is livekit-sdk-ubuntu-24.04-x64-${VERSION}/. Only the file name matches the old convention; the extracted directory does not. Same for the arm64 alias.
A fix is to create the alias by tarring the downloaded artifact directory under the legacy name, e.g. copying/renaming artifacts/livekit-sdk-ubuntu-24.04-x64-${VERSION} to livekit-sdk-linux-x64-${VERSION} before tarring, or using tar --transform to rewrite the leading path component.
| # Deprecated compatibility aliases for existing Linux release consumers. | |
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \ | |
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz" | |
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \ | |
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz" | |
| # Deprecated compatibility aliases for existing Linux release consumers. | |
| # Repack (not copy) so the extracted top-level directory keeps the legacy name. | |
| for pair in "ubuntu-24.04-x64:linux-x64" "ubuntu-24.04-arm64:linux-arm64"; do | |
| src="livekit-sdk-${pair%%:*}-${VERSION}" | |
| dst="livekit-sdk-${pair#*:}-${VERSION}" | |
| if [[ -d "${src}" ]]; then | |
| cp -r "${src}" "${dst}" | |
| tar -czf "${{ github.workspace }}/release-assets/${dst}.tar.gz" "${dst}" | |
| rm -rf "${dst}" | |
| fi | |
| done |
Was this helpful? React with 👍 or 👎 to provide feedback.
| # Deprecated compatibility aliases for existing Linux release consumers. | ||
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \ | ||
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz" | ||
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \ | ||
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz" |
There was a problem hiding this comment.
🟡 Release publishing aborts if an Ubuntu 24.04 build archive is missing
The compatibility Linux downloads are created without first checking that the Ubuntu 24.04 archives exist (cp at .github/workflows/make-release.yml:436-439), so if either is absent the whole release step stops and no assets are published at all.
Impact: A single missing Linux build turns a partial release into no release, including the macOS and Windows assets that were built fine.
Unguarded cp under `set -e` semantics
Every other archive creation in this step is guarded by if [[ -d "${dirName}" ]], so a missing artifact is skipped. GitHub runs shell: bash steps with -eo pipefail, so a failing cp aborts the step before the Windows zip is created and before softprops/action-gh-release runs.
Was this helpful? React with 👍 or 👎 to provide feedback.
Uh oh!
There was an error while loading. Please reload this page.